﻿using System;

namespace Ast.Core.Pe.Definitions
{
    [Flags]
    public enum FileCharacteristics : ushort
    {
        RelocationsStripped = 0x0001, // Relocation info stripped from file.
        ExecutableImage = 0x0002, // File is executable  (i.e. no unresolved externel references).
        LineNumbersStripped = 0x0004, // Line nunbers stripped from file.
        LocalSymbolsStripped = 0x0008, // Local symbols stripped from file.
        AggressivelyTrimWorkingSet = 0x0010, // Agressively trim working set
        LargeAddressAware = 0x0020, // App can handle >2gb addresses
        BytesReversedLow = 0x0080, // Bytes of machine word are reversed.
        Machine32Bit = 0x0100, // 32 bit word machine.
        DebugInfoStripped = 0x0200, // Debugging info stripped from file in .DBG file
        RunFromSwap_RemovableMedia = 0x0400, // If Image is on removable media, copy and run from the swap file.
        RunFromSwap_Network = 0x0800, // If Image is on Net, copy and run from the swap file.
        SystemFile = 0x1000, // System File.
        DynamicLinkLibrary = 0x2000, // File is a DLL.
        UniprocessorSystemOnly = 0x4000, // File should only be run on a UP machine
        BytesReversedHigh = 0x8000 // Bytes of machine word are reversed.
    }
}